10 - - Wert einer Zahl

← Zurück zum Forum

noch mal eine "knifflige" Aufgabe:

LDA Wert
LSR ;(50%)
LSR ;(25%)
LSR ;(12%)

Aber wie bekomme ich möglichst effektiv die 10% ?? Wer hat den smartesten und schnellsten / kürzesten Ansatz in Assembler??

... hier mal mein schneller Ansatz: (ist natürlich nur eine recht gute Näherung)

        LDA Wert
        LSR
        LSR
        LSR
        TAX
        LDA TabKorr,x
        STA Ergebnis

TabKorr 
        .byte 0,1,2,3,4,5,6,6,7,8,9,9,10,11,12,13,13,14,15,16,17,17,18,19,20,21,21,22,23,24,25

Du könntest 1.5 / 16 als Näherung für 1/10 nehmen, also:

    LDA Wert
    LSR
    ADC Wert
    ROR
    LSR
    LSR
    LSR
    STA Ergebnis

ja super Lösung

RhoSigma schrieb: Vielleichst solltest Du für Deine "Aufgaben" mal dem GNU-Superoptimizer 6502 beibringen 🙂

https://www.gnu.org/software/superopt/

Einmal gemacht, löst der dann ohne KI alle Aufgaben für Dich 😂

... es geht gar nicht um Lösungen für mich... Bald unterhalten sich hier im Forum dann eh nur noch KI´s und wir können dann ganz entspannt passiv mitlesen, das wäre wohl für alle am einfachsten...

Der Atari soll doch einen Dezimal-Modus haben, den würde ich dafür benutzen.

http://fujiama.eu https://abbuc.de/~atarixle/ BOSS-X - das Finale: https://abbuc.de/~atarixle/?article=bossxfinaleditionprerelease

atarixle schrieb: Der Atari soll doch einen Dezimal-Modus haben, den würde ich dafür benutzen.

Nutzt nix, weil es keine Konvertierungsinstruktionen gibt. D.h. die Umwandlung von Hex in Dezimal ist trotzdem teuer. Wenn natürlich der ganze Code in BCD ist, dann ja, vier LSR